package com.it.server.service.Impl;

import com.it.pojo.DTO.CartItemDTO;
import com.it.pojo.Entity.CartItem;
import com.it.pojo.Entity.Dish;
import com.it.pojo.VO.CartItemVO;
import com.it.server.mapper.CartItemMapper;
import com.it.server.mapper.DishMapper;
import com.it.server.service.CartItemService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CartItemServiceImpl implements CartItemService {
    @Autowired
    private CartItemMapper cartItemMapper;
    @Autowired
    private DishMapper dishMapper;
    @Override
    public List<CartItemVO> list(CartItemDTO cartItemDTO) {
        CartItem cartItem =new CartItem();
        BeanUtils.copyProperties(cartItemDTO, cartItem);
        List<CartItemVO> list = cartItemMapper.list(cartItem);
        return list;
    }

    @Override
    public void add(CartItemDTO cartItemDTO) {
        CartItem cartItem =new CartItem();
        BeanUtils.copyProperties(cartItemDTO, cartItem);
        cartItem.setQuantity(1);
        Dish dish =dishMapper.detail(cartItem.getDishId());
        cartItem.setName(dish.getName());
        cartItem.setPrice(dish.getPrice());
        cartItem.setImageUrl(dish.getImageUrl());
        cartItemMapper.add(cartItem);
    }

    @Override
    public void delete(CartItemDTO cartItemDTO) {
        cartItemMapper.deleteById(cartItemDTO);
    }

    @Override
    public void update(CartItemDTO cartItemDTO) {
        cartItemMapper.update(cartItemDTO);
    }

    @Override
    public void clear(CartItemDTO cartItemDTO) {
        cartItemMapper.clear(cartItemDTO.getUserId(),cartItemDTO.getMerchantId());
    }
}
